package com.xiong.xtools.qrcode;

import android.content.Intent;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.xiong.xtools.R;

/**
 * Author : 熊文强
 * Time : 2017/9/20
 * Content : 扫描二维码，条形码；生成二维码，条形码；从图片中回去数据
 */
public class QRCodeActivity extends AppCompatActivity {
	LinearLayout mLlScaner; // 扫描二维码
	LinearLayout mLlQr;  // 生成二维码
	LinearLayout mLlBar; // 生成条形码

	private NestedScrollView nestedScrollView; // 下方滑动布局
	EditText mEtQrCode; // 输入二维码需要生成的字符串
	ImageView mIvCreateQrCode;  // 点击生成
	LinearLayout mLlQrRoot;
	ImageView mIvQrCode;   // 显示生成的二维码
	LinearLayout mLlCode;  // 包裹生成的二维码

	EditText mEtBarCode;  // 输入条形码需要生成的字符串
	ImageView mIvBarCode; // 点击生成
	LinearLayout mLlBarRoot;
	ImageView mIvCreateBarCode; // 显示生成的条形码
	LinearLayout mLlBarCode; // 包裹生成的条形码


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_qrcode);

		findView();
		initEvent();
	}

	private void initEvent() {
		mIvCreateQrCode.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String str = mEtQrCode.getText().toString();
				if (str == null || str.length() == 0 || "".equals(str) || "null".equals(str)) {
					Toast.makeText(QRCodeActivity.this, "二维码文字内容不能为空！", Toast.LENGTH_SHORT).show();
				} else {
					mLlCode.setVisibility(View.VISIBLE);

					//二维码生成方式一  推荐此方法
					RxQRCode.builder(str).
							backColor(getResources().getColor(R.color.white)).
							codeColor(getResources().getColor(R.color.black)).
							codeSide(800).
							into(mIvQrCode);

					//二维码生成方式二 默认宽和高都为800 背景为白色 二维码为黑色
					// RxQRCode.createQRCode(str,mIvQrCode);

					Toast.makeText(QRCodeActivity.this, "二维码已生成!", Toast.LENGTH_SHORT).show();

//					RxSPUtils.putContent(mContext, SP_MADE_CODE, RxDataUtils.stringToInt(RxSPUtils.getContent(mContext, SP_MADE_CODE)) + 1 + "");

					nestedScrollView.computeScroll();
				}
			}
		});

		mIvCreateBarCode.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String str1 = mEtBarCode.getText().toString();
				if (str1 == null || str1.length() == 0 || "".equals(str1) || "null".equals(str1)) {
					Toast.makeText(QRCodeActivity.this, "条形码文字内容不能为空！", Toast.LENGTH_SHORT).show();
				} else {
					mLlBarCode.setVisibility(View.VISIBLE);

					//条形码生成方式一  推荐此方法
					RxBarCode.builder(str1).
							backColor(getResources().getColor(R.color.transparent)).
							codeColor(getResources().getColor(R.color.black)).
							codeWidth(1000).
							codeHeight(300).
							into(mIvBarCode);

					//条形码生成方式二  默认宽为1000 高为300 背景为白色 二维码为黑色
					//mIvBarCode.setImageBitmap(RxBarCode.createBarCode(str1, 1000, 300));

					Toast.makeText(QRCodeActivity.this, "条形码已生成!", Toast.LENGTH_SHORT).show();

//					RxSPUtils.putContent(mContext, SP_MADE_CODE, RxDataUtils.stringToInt(RxSPUtils.getContent(mContext, SP_MADE_CODE)) + 1 + "");

				}
			}
		});

		mLlScaner.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(QRCodeActivity.this, ActivityScanerCode.class);
				startActivity(intent);
			}
		});

		mLlQr.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				mLlQrRoot.setVisibility(View.VISIBLE);
				mLlBarRoot.setVisibility(View.GONE);
			}
		});

		mLlBar.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				mLlBarRoot.setVisibility(View.VISIBLE);
				mLlQrRoot.setVisibility(View.GONE);
			}
		});
	}

	private void findView() {
		mLlScaner = (LinearLayout) findViewById(R.id.ll_scaner);
		mLlQr = (LinearLayout) findViewById(R.id.ll_qr);
		mLlBar = (LinearLayout) findViewById(R.id.ll_bar);
		nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
		mLlQrRoot = (LinearLayout) findViewById(R.id.ll_qr_root);
		mLlBarRoot = (LinearLayout) findViewById(R.id.ll_bar_root);
		mEtQrCode = (EditText) findViewById(R.id.et_qr_code);
		mIvCreateQrCode = (ImageView) findViewById(R.id.iv_create_qr_code);
		mIvQrCode = (ImageView) findViewById(R.id.iv_qr_code);
		mLlCode = (LinearLayout) findViewById(R.id.ll_code);

		mEtBarCode = (EditText) findViewById(R.id.et_bar_code);
		mIvBarCode = (ImageView) findViewById(R.id.iv_bar_code);
		mIvCreateBarCode = (ImageView) findViewById(R.id.iv_create_bar_code);
		mLlBarCode = (LinearLayout) findViewById(R.id.ll_bar_code);
	}
}
